Mobile device applications, commonly referred to as “apps,” are a ubiquitous presence on smart phones and other electronic mobile communication devices. With the advent of the Apple iPhone in January 2007, apps became a normal part of users' day-to-day experiences with their mobile devices. There is a wide variety of apps targeted for consumers' and business' smart phones that include email management, web connection, and social media interaction.
Many mobile apps rely upon a consistent wireless connection between the mobile device and Internet networks. When the connection is strong, the apps upload and download data as designed. When the connection is weak or nonexistent, the apps often present error messages, such as “unable to connect to server,” to users. A user may wait expecting that at some point, the mobile device will connect again to the network and that the app will continued uploading or downloading.
For many apps, a temporary halt in wireless connection is nothing more than a nuisance. The task of uploading or downloading can simply be performed when the connection is reestablished. For example, in an email app, incoming messages can be downloaded and outgoing messages can be uploaded when the device enters an area with better signal coverage. For other apps, such as those which ‘lock’ items when checked out from a database, the problem affects more than the user on the mobile device. For example, a user on a mobile device who is editing a contact in a server-based contact list may lock out other users from editing the same contact when the user's mobile device goes out of range.
Depending on a type of app or the type of data used by apps, the apps may need to connect and synchronize with different back-end enterprise systems. The different back-end enterprise systems may vary for the application and the type of data. As such, different back-end enterprise systems may use different communication protocols and mechanisms to communicate data to devices. Devices such as mobile computing devices may have limited computing resources and/or communication connections to maintain synchronization of data with back-end systems. Further, mobile computing devices may not be aware of configurations or formats of data provided by different back-end systems. As such, mobile computing devices may encounter challenges for synchronizing data with back-end systems.